using System.Collections.Generic;
using NHibernate;
using PortalFolia.Data.Objetos;
using PortalFolia.IRepositorio;

namespace PortalFolia.Repositorio
{
    
    public class RepositorioEventos : IRepositorioEventos
    {
        public Eventos Inserir(Eventos eventos)
        {
            GerenciadorBD.Instance.SessaoAtual().Save(eventos);
            return eventos;
        }

        public Eventos Atualizar(Eventos eventos)
        {
            Eventos tmpEventos = ObterPorId(eventos.EventoId);

            // Atribuicao dos valores do objeto da memoria para o objeto obtido no banco de dados

            GerenciadorBD.Instance.SessaoAtual().Update(tmpEventos);
            return tmpEventos;
        }

        public void Excluir(Eventos eventos)
        {
            GerenciadorBD.Instance.SessaoAtual().Delete(eventos);
        }

        public IList<Eventos> ObterTodos()
        {
            ICriteria criteria = GerenciadorBD.Instance.SessaoAtual().CreateCriteria(typeof(Eventos));
            return criteria.List<Eventos>() as List<Eventos>;
        }

        public Eventos ObterPorId(int id)
        {
            return GerenciadorBD.Instance.SessaoAtual().Get<Eventos>(id);
        }
    }
}